import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        // 使用LinkedList作为栈
        LinkedList<Integer> stack = new LinkedList<>();

        // 压栈操作 (push) - 使用addFirst()方法
        stack.addFirst(10);
        stack.addFirst(20);
        stack.addFirst(30);

        System.out.println("栈的大小: " + stack.size()); // 输出: 3

        // 查看栈顶元素 (peek) - 使用getFirst()方法
        System.out.println("栈顶元素: " + stack.getFirst()); // 输出: 30

        // 出栈操作 (pop) - 使用removeFirst()方法
        System.out.println("出栈元素: " + stack.removeFirst()); // 输出: 30
        System.out.println("出栈元素: " + stack.removeFirst()); // 输出: 20

        System.out.println("栈的大小: " + stack.size()); // 输出: 1
        System.out.println("栈顶元素: " + stack.getFirst()); // 输出: 10

        // 再次压栈
        stack.addFirst(40);
        System.out.println("栈顶元素: " + stack.getFirst()); // 输出: 40

        // 清空栈
        while (!stack.isEmpty()) {
            System.out.println("出栈元素: " + stack.removeFirst());
        }

        System.out.println("栈是否为空: " + stack.isEmpty()); // 输出: true
    }
}